package persistance.dal;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import ucc.objects.ClasseDeProduitDTO;
import exception.DataAccesException;

public class ClasseDeProduitPersisterImpl implements ClasseDeProduitPersister {

	private PreparedStatement queryInsert;
	private PreparedStatement queryUpdate;
	private static final String INSERT = "insert into caisse.classes_de_produits (designation)"
			+ "values (?)";
	private static final String UPDATE = "update caisse.classes_de_produits set "
			+ "designation=? where id_classe_de_produit=?";

	public ClasseDeProduitPersisterImpl() {
		this.queryInsert = DalBackEndServices.INSTANCE.prepare(INSERT);
		this.queryUpdate = DalBackEndServices.INSTANCE.prepare(UPDATE);
	}

	public void insert(ClasseDeProduitDTO nouvelleClasseDeProduit) {
		try {
			queryInsert.setString(1, nouvelleClasseDeProduit.getDesignation());
			queryInsert.execute();
		} catch (SQLException sqlE) {
			sqlE.printStackTrace();
			throw new DataAccesException(
					"SQL/JDBC Connection, Statement, executeQuery problem \n",
					sqlE);
		}
	}

	public void update(ClasseDeProduitDTO classeDeProduit) {
		try {
			queryUpdate.setString(1, classeDeProduit.getDesignation());
			queryUpdate.setInt(2, classeDeProduit.getId());
			queryUpdate.execute();
		} catch (SQLException sqlE) {
			sqlE.printStackTrace();
			throw new DataAccesException(
					"SQL/JDBC Connection, Statement, executeQuery problem \n",
					sqlE);
		}
	}
}
